home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #007 (19xx)(Amiga User Group Deutschland e.V.).zip / Franz PD Disk #007 (19xx)(Amiga User Group Deutschland e.V.).adf / IMandelVroom / README < prev   
Text File  |  1986-10-22  |  5KB  |  79 lines

  1. Ever wonder what evil lurks in the blackened depths of the inner circle of the
  2. Mandelbrot set?  Long ago, when Robert French came out with the first widely
  3. distributed C language Mandelbrot set generator for the Amiga, I attempted to
  4. hack it to show what was going on in the inner reaches with a set of contours
  5. just like the outer Mandelbrot.  I failed.  My reasoning went something like
  6. this:  The Mandelbrot fractal boundary is considered to be "stable".  The points
  7. along the boundary are not migrating in the accumulated formulary sum.  Points
  8. outside the boundary flee to infinity.  Points inside the boundary fall to
  9. various limit cycles or to certain loci in the inner map, such as x=0,y=0.
  10. The destination points of the flight are known as "strange attractors".
  11. The outer infinite destination is a strange attractor at infinity.  The one
  12. at the origin is perhaps easy to accept - the iterative product of real
  13. fractions, at least, ought to go to zero as a limit.  The other points are
  14. elusive rascals to locate if one has no prior hueristic knowledge of likely
  15. sites for loci.  The original Amiga Mand.c program, as improved by R. J. Mical
  16. had a small section of inescapable code (you had to reboot to get out of it)
  17. called the "Analyzer" with which you could, after executing "SA filename" and
  18. "L filename" followed by "A", examine the orbits of the Mandelbrot sum points
  19. on the fly.  By leaning on the left mouse button and patrolling with the
  20. cursor, one could find the strange attractors (I think they're the places
  21. where the knot of points condenses into a minimum number of clusters of
  22. minimal diameter - one in the main body, three in the lobes at the top and
  23. bottom, four in the first lobe on the x axis, five for some intermediate lobes,
  24. etc.).
  25.  
  26. Well, anyway, back to the matter at hand.  The cause of my failure was rooted
  27. in the following reasoning:  If the fleeing points are advancing toward what is
  28. nominally considered a bye-bye level of absolute radial magnitude 2.0 then we
  29. could suppose that points bound to collapse toward the inside may be considered
  30. doomed when they fall to absolute magnitude 0.5, right?  So I set up a little
  31. if statement to trap this condition.  Much to my surprise and horror, I found
  32. that many of the points destined to escape to the *outside* did so by orbiting
  33. through radial magnitudes 0.5 and lower.  In fact, setting the separator as
  34. low as 0.03125 left zillions of points improperly sorted.  I was forced to
  35. conclude that there was no practical lower value that would sort the inwardly
  36. collapsing points.  And with that, I went on to other business and left the
  37. strange attractors to the math experts.
  38.  
  39. Recently, there was Yet Another Mandelbrot Program, titled MandelVroom, posted
  40. to the net by one Kevin Clague at Amdahl.  He added a Motorola floating point
  41. section that he claimed would give much improved resolution over the previously
  42. available Mandelbrots, though I haven't checked that out in detail yet.  One
  43. thing that Kevin did make a note about in his code is the "Ring Detector" for
  44. ponderous points in the inner lobes of the Mandelbrot interior exo-set.  This
  45. code detects non-migrating orbits for rotating points and escapes to more
  46. productive duty, setting the cell count to max on the way out.  However,
  47. another thing it is capable of doing, so it turns out, is acting as a strange
  48. attractor contour generator of sorts.  It doesn't do a perfect job of this,
  49. (in fact, I am wondering why it works at all) in that some places where there
  50. are inflections in the contour, (See Note 1. below) it just gets "noisy".
  51. Nonetheless, the contours produced may be of interest to some of you.  And
  52. why not - the change to the source involves commenting out only three lines of
  53. assembly code.  The results will not hold your attention as well as does the
  54. Mandelbrot set, but (Yawn) it's something to know about...  In mand.c I put
  55. semicolons at the beginning of the lines as shown below:
  56.     At line ~229 in mand.c find the ring detector loop and add (;)'s
  57.     lloop1
  58.            cmp.l    (a0)+,d4
  59.            bne      skipit
  60.            cmp.l    (a1)+,d5
  61.            bne      nextl
  62.     ;      move.w  _MaxCount,d0
  63.     ;      ext.l    d0
  64.     ;      move.l   d0,k(a5)
  65.     ;      move.l   #0,l(a5)
  66.            bra      out
  67.  
  68. If you make the patch, remember to select FFP in the Generator item submenu
  69. after opening the EDIT menu.  For those with no Manx, I'll post a .uue that
  70. has this done for you, (along with an optimized color register set) in a
  71. following article.
  72. -----------------------------------------------------------------------------
  73. Note 1: See contour map, Fig 33 p.60, "The Beauty of Fractals" by
  74.      H.-O. Peitgen - P.H. Richter, Springer-Verlag (Berlin, New York,...)
  75. -----------------------------------------------------------------------------
  76.                                  Howard Hull
  77.  
  78.  
  79.